package com.bfly.mall.admin.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.bfly.core.base.entity.BaseEntity;

import java.io.Serializable;
import java.util.List;

/**
 * 系统菜单
 *
 * @author 长沙商脉科技有限公司
 * @date 2019/7/12 18:30
 */
@TableName(value = "sys_menu", resultMap = "MenuResultMap")
public class Menu extends BaseEntity implements Serializable {
    private static final long serialVersionUID = 5827973613161140028L;

    /**
     * 菜单名称
     *
     * @author 长沙商脉科技有限公司
     * @date 2019/7/12 18:35
     */
    @TableField("name")
    private String name;

    /**
     * 菜单链接地址
     *
     * @author 长沙商脉科技有限公司
     * @date 2019/7/12 18:35
     */
    @TableField("url")
    private String url;

    /**
     * 权限代号
     * 超级管理员菜单为permission为*
     * @author 长沙商脉科技有限公司
     * @date 2020/10/15 11:57
     */
    @TableField("permission")
    private String permission;

    /**
     * 菜单排序
     *
     * @author 长沙商脉科技有限公司
     * @date 2019/7/12 18:36
     */
    @TableField("seq")
    private int seq;

    /**
     * 父节点ID
     * 超级管理员菜单为parent_id为-1
     * @author 长沙商脉科技有限公司
     * @date 2020/6/29 19:38
     */
    @TableField("parent_id")
    private int parentId;

    /**
     * 是否是操作级别的菜单
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/6/29 23:19
     */
    @TableField("is_action")
    private boolean action;

    /**
     * 图标
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/6/29 23:30
     */
    @TableField("icon")
    private String icon;

    /**
     * 子节点
     *
     * @author 长沙商脉科技有限公司
     * @date 2019/7/12 18:44
     */
    @TableField(exist = false)
    private List<Menu> children;

    public String getPermission() {
        return permission;
    }

    public void setPermission(String permission) {
        this.permission = permission;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public int getSeq() {
        return seq;
    }

    public void setSeq(int seq) {
        this.seq = seq;
    }

    public int getParentId() {
        return parentId;
    }

    public void setParentId(int parentId) {
        this.parentId = parentId;
    }

    public List<Menu> getChildren() {
        return children;
    }

    public void setChildren(List<Menu> children) {
        this.children = children;
    }

    public boolean isAction() {
        return action;
    }

    public void setAction(boolean action) {
        this.action = action;
    }

    public String getIcon() {
        return icon;
    }

    public void setIcon(String icon) {
        this.icon = icon;
    }
}
